/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package wf3.util;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import wf.dto.Ubigeo;

/**
 *
 * @author romulogalindo
 */
public class Departamento implements Serializable {

    private String co_depart;
    private String no_depart;
    private List<Provincia> provincias = new ArrayList<>();

    public Departamento() {
    }

    public Departamento(List<Ubigeo> ubigeos) {
        buildProvincias(ubigeos);
    }

    public String getCo_depart() {
        return co_depart;
    }

    public void setCo_depart(String co_depart) {
        this.co_depart = co_depart;
    }

    public String getNo_depart() {
        return no_depart;
    }

    public void setNo_depart(String no_depart) {
        this.no_depart = no_depart;
    }

    public List<Provincia> getProvincias() {
        return provincias;
    }

    public void setProvincias(List<Provincia> provincias) {
        this.provincias = provincias;
    }

    public void buildProvincias(List<Ubigeo> ubigeos) {
        Ubigeo u = ubigeos.get(0);
        co_depart = u.getCo_ubigeo().substring(0, 2);
        no_depart = u.getNo_depart();

        List<Ubigeo> distritos = new ArrayList<>();
        String no_provin = u.getNo_provin();
        for (Ubigeo ubi : ubigeos) {
            if (ubi.getNo_provin().contentEquals(no_provin)) {
                distritos.add(ubi);
            } else {
                this.provincias.add(new Provincia(distritos));
                distritos = null;
                distritos = new ArrayList<>();
                distritos.add(ubi);
            }
            no_provin = ubi.getNo_provin();
        }
        if (distritos.size() > 0) {
            this.provincias.add(new Provincia(distritos));
        }
    }

    public Provincia getProvincia(String co_provin) {
        Provincia provincia = null;
        for (Provincia p : provincias) {
            if (p.getCo_provin().contentEquals(co_provin)) {
                provincia = p;
                break;
            }
        }
        return provincia;
    }

}
